GlucoDex senses one signal — continuous glucose — and computes the full glycemic suite. It is the suite’s metabolic receptor, and it can fuse an ECGDex export to read the autonomic↔glycemic link.
Read the suite as a reflex arc: receptors → relay → integration → insight. GlucoDex is an afferent receptor — it does exactly one transduction well and reports inward. It never reaches into another node; cross-signal work happens only through the Ganglior export, consumed by the Integrator.
GlucoDex is built from external *.js files referenced by GlucoDex.src.html and bundled to a standalone GlucoDex.html. Dependencies point downhill only — UI → DSP → Core — and each file owns exactly one job. Edit the .js + .src.html, never the bundle; re-bundle after changes.
buildHash provenance stamp). 100% local.tMs (local civil time encoded as if UTC) and reads it back with getUTC* — so the recording reads identically in any viewer’s timezone, and two devices recording the same minute land on the same tMs. parseTimestamp is duplicated locally by design.The pipeline is the same shape across the suite: ingest → parse on the canonical clock → compute in DSP → grade & render in UI → emit onto the bus. No number is computed in the render layer; it asks DSP for the value and the registry for how to show it.
Drop a CGM CSV or generate a realistic synthetic trace. Ingest is robust to vendor column layouts.
Timestamps become floating tMs; GlucoDex disambiguates dates as MDY (CGM convention) per the Clock Contract, never locale parsing.
All glycemic math runs on the full cleaned series — decimation is render-only. Core metrics, variability suite, pattern detection and AGP percentiles.
If an ECGDex export is dropped, the autonomic-risk vector is combined with glycemic variability into an insulin-resistance-risk band and the autonomic↔glycemic plot.
GlucoScope and the AGP/TIR charts are drawn; events and metrics export onto Ganglior.
Every metric GlucoDex surfaces carries an evidence grade — a non-hue badge whose fill is the confidence ladder: solid bullseye for a raw reading, down to a dashed ring for a friendly estimate. A measurement and a projection must never look alike. Grades live in glucodex-registry.js, the one source of truth.
Honesty is architectural: a guess is never dressed as a measurement, a missing value stays null rather than fabricated, and confidence is kept separate from signal quality. The node-specific caveats:
Sensor warm-up and dropout spans are excluded from the math and shown greyed on GlucoScope — they are not silently interpolated.
Lying on the sensor can produce false nocturnal lows. Pattern detection flags them, but a confirmed hypo still needs a fingerstick.
The profile takes a real lab-A1c as ground truth and checks it against the sensor-derived GMI — the family’s device-vs-self honesty check.
CGM exports are MDY by convention; GlucoDex locks DMY/MDY deterministically per file so 05/13 and 13/05 both resolve to the same day.
GlucoDex is one self-contained file. Open GlucoDex.html in any browser — online, offline, or from file://. Nothing installs, nothing phones home.
Drag a CGM sensor export (cgm csv) onto the upload zone. It’s read in-browser and turned into metrics on your device alone.
Start in Core for the headline readiness and a plain-language line. Step up to Advanced for full tables and charts, or Research for composites and the full dump. Each metric’s evidence dot tells you how far to trust it.
Export a ganglior.node-export JSON to feed the Integrator, or to upgrade a peer node’s read. Events carry a wall-clock t; consumers reconstruct absolute time from the recording start.
Edit the glucodex-*.js files or GlucoDex.src.html — never the bundled GlucoDex.html — then re-bundle. Run Dex-Test-Suite.html until all-green, and verify-provenance.html after re-bundling.